﻿// -- MVC4WPF
// -- Copyright © 2009 Information Control Corporation
// -- Revision History:
// -- Version 0.9.0.0 First codeplex release  - Stephen Giffin

    using System;
    using System.ComponentModel;
    using System.Windows;

namespace MVC4WPF
{
    /// <summary>
    /// Extended interface of the wpf view interface that also exposes functionality realted to windows.
    /// </summary>
    public interface IWPFViewWindow : IWPFView
    {
        /// <summary>
        /// Event that informs subscribers that the view is closing. This can be overridden by cancling the close.
        /// </summary>
        event CancelEventHandler ViewClosing;

        /// <summary>
        /// Event that notifies subscribers of when the view has been closed.
        /// </summary>
        event EventHandler<EventArgs> ViewClosed;

        /// <summary>
        /// Informs the view that the current window needs to show.
        /// </summary>
        void ShowView();

        /// <summary>
        /// Informs the view that the current window needs to displayed in a modal dialog in relation to the parent window.
        /// </summary>
        /// <param name="parentWindow">The window that holds the parent relationship in the modal view.</param>
        void ShowViewModal(Window parentWindow);

        /// <summary>
        /// Informs the view that it needs to hide.
        /// </summary>
        void HideView();


    }
}
